import {Layout} from "@/utils/routerHelper";

const {t} = useI18n();
/**
 * redirect: noredirect        当设置 noredirect 的时候该路由在面包屑导航中不可被点击
 * name:'router-name'          设定路由的名字，一定要填写不然使用<keep-alive>时会出现各种问题
 * meta : {
 hidden: true              当设置 true 的时候该路由不会再侧边栏出现 如404，login等页面(默认 false)

 alwaysShow: true          当你一个路由下面的 children 声明的路由大于1个时，自动会变成嵌套的模式，
 只有一个时，会将那个子路由当做根路由显示在侧边栏，
 若你想不管路由下面的 children 声明的个数都显示你的根路由，
 你可以设置 alwaysShow: true，这样它就会忽略之前定义的规则，
 一直显示根路由(默认 false)

 title: 'title'            设置该路由在侧边栏和面包屑中展示的名字

 icon: 'svg-name'          设置该路由的图标

 noCache: true             如果设置为true，则不会被 <keep-alive> 缓存(默认 false)

 breadcrumb: false         如果设置为false，则不会在breadcrumb面包屑中显示(默认 true)

 affix: true               如果设置为true，则会一直固定在tag项中(默认 false)

 noTagsView: true          如果设置为true，则不会出现在tag中(默认 false)

 activeMenu: '/dashboard'  显示高亮的路由路径

 followAuth: '/dashboard'  跟随哪个路由进行权限过滤

 canTo: true               设置为true即使hidden为true，也依然可以进行路由跳转(默认 false)
 }
 **/
const remainingRouter: AppRouteRecordRaw[] = [
  {
    path: "/redirect",
    component: Layout,
    name: "Redirect",
    children: [
      {
        path: "/redirect/:path(.*)",
        name: "Redirect",
        component: () => import("@/views/Redirect/Redirect.vue"),
        meta: {}
      }
    ],
    meta: {
      hidden: true,
      noTagsView: true
    }
  },
  {
    path: "/",
    component: Layout,
    redirect: "/yxt/building/list",
    name: "Home",
    meta: {
      hidden: true
    },
  },
  {
    path: "/user",
    component: Layout,
    name: "UserInfo",
    meta: {
      hidden: true
    },
    children: [
      {
        path: "profile",
        component: () => import("@/views/Profile/Index.vue"),
        name: "Profile",
        meta: {
          canTo: true,
          hidden: true,
          noTagsView: false,
          icon: "ep:user",
          title: t("common.profile")
        }
      },
      {
        path: "notify-message",
        component: () => import("@/views/system/notify/my/index.vue"),
        name: "MyNotifyMessage",
        meta: {
          canTo: true,
          hidden: true,
          noTagsView: false,
          icon: "ep:message",
          title: "我的站内信"
        }
      }
    ]
  },

  {
    path: "/dict",
    component: Layout,
    name: "dict",
    meta: {
      hidden: true
    },
    children: [
      {
        path: "type/data/:dictType",
        component: () => import("@/views/system/dict/data/index.vue"),
        name: "SystemDictData",
        meta: {
          title: "字典数据",
          noCache: true,
          hidden: true,
          canTo: true,
          icon: "",
          activeMenu: "/system/dict"
        }
      }
    ]
  },

  {
    path: "/codegen",
    component: Layout,
    name: "CodegenEdit",
    meta: {
      hidden: true
    },
    children: [
      {
        path: "edit",
        component: () => import("@/views/infra/codegen/EditTable.vue"),
        name: "InfraCodegenEditTable",
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: "ep:edit",
          title: "修改生成配置",
          activeMenu: "infra/codegen/index"
        }
      }
    ]
  },
  {
    path: "/job",
    component: Layout,
    name: "JobL",
    meta: {
      hidden: true
    },
    children: [
      {
        path: "job-log",
        component: () => import("@/views/infra/job/logger/index.vue"),
        name: "InfraJobLog",
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: "ep:edit",
          title: "调度日志",
          activeMenu: "infra/job/index"
        }
      }
    ]
  },
  {
    path: "/login",
    component: () => import("@/views/Login/Login.vue"),
    name: "Login",
    meta: {
      hidden: true,
      title: t("router.login"),
      noTagsView: true
    }
  },
  {
    path: "/sso",
    component: () => import("@/views/Login/Login.vue"),
    name: "SSOLogin",
    meta: {
      hidden: true,
      title: t("router.login"),
      noTagsView: true
    }
  },
  {
    path: "/403",
    component: () => import("@/views/Error/403.vue"),
    name: "NoAccess",
    meta: {
      hidden: true,
      title: "403",
      noTagsView: true
    }
  },
  {
    path: "/404",
    component: () => import("@/views/Error/404.vue"),
    name: "NoFound",
    meta: {
      hidden: true,
      title: "404",
      noTagsView: true
    }
  },
  {
    path: "/500",
    component: () => import("@/views/Error/500.vue"),
    name: "Error",
    meta: {
      hidden: true,
      title: "500",
      noTagsView: true
    }
  },
  {
    path: "/dashboard/data",
    component: () => import("@/views/Dashboard/data.vue"),
    name: "dashboard-data",
    meta: {
      hidden: true,
      title: "数据看板",
      noTagsView: true
    }
  },
  {
    path: "/dashboard/platform",
    component: () => import("@/views/Dashboard/platform.vue"),
    name: "dashboard-platform",
    meta: {
      hidden: true,
      title: "数据看板",
      noTagsView: true
    }
  },
  {
    path: "/yxt/student",
    component: Layout,
    name: "student",
    meta: {
      hidden: true
    },
    children: [
      {
        path: "detail/:stuId",
        component: () => import("@/views/yxt/member/student/detail/index.vue"),
        name: "YxtStuDetail",
        meta: {
          title: "详情信息",
          noCache: true,
          hidden: true,
          canTo: true,
          icon: "",
          activeMenu: "yxt/member/student/detail/index"
        }
      },
      {
        path: "studentCourseData",
        component: () => import("@/views/yxt/member/student/CourseData.vue"),
        name: "YxtStudentCourseData",
        meta: {
          title: "学生总课程数据",
          noCache: true,
          hidden: true,
          canTo: true,
          icon: "",
          activeMenu: "yxt/member/student/CourseData"
        }
      }
    ]
  },
  {
    path: "/yxt/teacher",
    component: Layout,
    name: "teacher",
    meta: {
      hidden: true
    },
    children: [
      {
        path: "detail/:teaId",
        component: () => import("@/views/yxt/member/teacher/detail/index.vue"),
        name: "YxtTeaDetail",
        meta: {
          title: "详情信息",
          noCache: true,
          hidden: true,
          canTo: true,
          icon: "",
          activeMenu: "yxt/member/teacher/detail/index"
        }
      },
      {
        path: "teacherCourseData",
        component: () => import("@/views/yxt/member/teacher/CourseData.vue"),
        name: "YxtTeacherCourseData",
        meta: {
          title: "教师总课程数据",
          noCache: true,
          hidden: true,
          canTo: true,
          icon: "",
          activeMenu: "yxt/member/teacher/CourseData"
        }
      }
    ]
  },
  {
    path: "/yxt/room",
    component: Layout,
    name: "room",
    meta: {
      hidden: true
    },
    children: [
      {
        path: "detail/:roomId",
        component: () => import("@/views/yxt/room/exclusive/detail/index.vue"),
        name: "YxtExclusiveRoomDetail",
        meta: {
          title: "详情信息",
          noCache: true,
          hidden: true,
          canTo: true,
          icon: "",
          activeMenu: "yxt/room/teacher/exclusive/index"
        }
      }
    ]
  }
];

export default remainingRouter;
